package com.jic.point.api;


import com.jic.common.base.vo.RestResult;
import com.jic.point.rest.request.*;
import com.jic.point.rest.response.AuditRightsAndInterestsResponse;
import com.jic.point.rest.response.CommitRightsConfigRsponse;
import com.jic.point.rest.response.OrderQueryResponse;
import com.jic.point.rest.response.QueryRunningWaterResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.math.BigDecimal;
import java.util.List;

@FeignClient(name = "jic-point",path = "/api/point/query")
@Api(tags = " [新增消耗积分]")
public interface HaierPointQueryApi {

    /**
     *
     *
     * @description: 查询海贝商城订单物流信息
     * @return:  OrderQueryResponse
     * @author: fengrui
     * @time: 2020/11/25 17:18
     */
    @ApiOperation("查询海贝商城订单物流信息")
    @PostMapping("/getOrderCode")
    RestResult<OrderQueryResponse> queryOrderCode(@RequestBody OrderQueryRequest request);

    /**
     *
     *
     * @description: 冻结积分
     * @return: Boolean
     * @author: fengrui
     * @time: 2020/11/25 17:56
     */
    @ApiOperation("冻结积分")
    @PostMapping("/freezePoint")
    RestResult<Boolean> freezePoint(@RequestBody FreezePointRequest request);

    /**
     *
     *
     * @description: 回收积分
     * @return: Boolean
     * @author: fengrui
     * @time: 2020/11/25 17:57
     */
    @ApiOperation("回收积分")
    @PostMapping("/recyclePoint")
    RestResult<Boolean> recyclePoint(@RequestBody RecyclePointRequest request);


    /**
     *
     *
     * @description: 可用预算查询接口（对接积分中心）-内部方法（或web端）调用
     * @return: PlatformDudgetResponse
     * @author: fengrui
     * @time: 2020/11/25 17:19
     */  
    @ApiOperation("查询各礼品平台的剩余预算")
    @PostMapping("/query-surplus-budget")
    RestResult<BigDecimal> querySurplusDudget(@RequestBody PlatformDudgetRequest request);

    @ApiModelProperty("")

    /**
     *
     *
     * @description: 活动提交接口（对接积分中心）-内部方法调用
     * @return:  CommitRightsConfigRsponse
     * @author: fengrui
     * @time: 2020/11/25 17:20
     */
    @ApiOperation("权益活动配置-权益提交")
    @PostMapping("/commitRightsConfig")
    RestResult<CommitRightsConfigRsponse> commitRightsConfig(@RequestBody CommitRightsConfigRequest request);

    /**
     *
     *
     * @description: 查询流水
     * @return:
     * @author: fengrui
     * @time: 2020/11/28 14:17
     */
    @ApiOperation("查询流水")
    @PostMapping("queryRunningWater")
    RestResult<?> queryRunningWater(@RequestBody QueryRunningWaterRequest request);

    /**
     *
     *
     * @description: 活动审核接口（对接积分中心）-内部方法调用
     * @return: AuditRightsAndInterestsResponse
     * @author: fengrui
     * @time: 2020/11/25 17:53
     */  
    @ApiOperation("根据权益编码审核通过权益")
    @PostMapping("/passRightsByRightsNo")
    RestResult<AuditRightsAndInterestsResponse> passRightsByRightsNo(@RequestBody AuditRightsAndInterestsRequest request);


    /**
     *
     *
     * @description:
     * @return:
     * @author: fengrui
     * @time: 2020/11/25 17:53
     */  
    @ApiOperation("用户可用总积分")
    @PostMapping("/upperFindTotalPoint")
    RestResult<?> upperFindTotalPoint(@RequestBody UserAvailablePointRequest request);


    @ApiOperation("激活积分卡")
    @PostMapping("/activateCardPoint")
    RestResult<?> activateCardPoint(@RequestBody ActivateCardPointRequest request);

    /**
     *
     *
     * @description:
     * @return: 
     * @author: fengrui
     * @time: 2020/11/25 17:54
     */  
    @ApiOperation("用户积分明细")
    @PostMapping("/upperFindDataPoint")
    RestResult<?>  upperFindDataPoint(@RequestBody UserAvailableDetailRequest request);
}
